//
//  NSObjectProtocol.swift
//  Documentation
//
//  Created by Toj on 1/12/23.
//
public protocol NSObjectProtocol {

    
    func isEqual(_ object: Any?) -> Bool

    var hash: Int { get }

    
    var superclass: AnyClass? { get }

    
    func `self`() -> Self

    
    func perform(_ aSelector: Selector!) -> Unmanaged<AnyObject>!

    func perform(_ aSelector: Selector!, with object: Any!) -> Unmanaged<AnyObject>!

    func perform(_ aSelector: Selector!, with object1: Any!, with object2: Any!) -> Unmanaged<AnyObject>!

    
    func isProxy() -> Bool

    
    func isKind(of aClass: AnyClass) -> Bool

    func isMember(of aClass: AnyClass) -> Bool

    func conforms(to aProtocol: Protocol) -> Bool

    
    func responds(to aSelector: Selector!) -> Bool

    
    var description: String { get }

    
    optional var debugDescription: String { get }
}
